In this project we develop a flight routing system that finds the shortest path from a given source to a destination, with intermediate legs in the route. We represent flights in the system as a network of directed weighted graph. We use Dijkstra algorithm for finding the shortest path between two given vertices. In addition we examine the effect of introducing concurrency, which is one of the challenges in Distributed Systems, in our system.